#!/bin/bash

TMP_DIR="$(pwd)/tmp"
JRUBY_DIR="$(pwd)/jruby-9.4.9.0/"

wget -c https://github.com/elastic/logstash/archive/refs/tags/v8.17.4.tar.gz
tar -zxf ./v8.17.4.tar.gz
rm -rf ./v8.17.4.tar.gz
pushd logstash-8.17.4/ || exit

export JAVA_OPTS="$JAVA_OPTS -Djava.io.tmpdir=$TMP_DIR -Xmx4G" # 这个好!
export OSS=true
export LOGSTASH_SOURCE=1
LOGSTASH_PATH="$(pwd)"
export LOGSTASH_PATH
LS_HOME="$(pwd)"
export LS_HOME

mkdir -p "$TMP_DIR"

# 进行 patch
patch -p1 < ../patches/logstash.patch

# ./gradlew assemble -Pcustom.jruby.path="$JRUBY_DIR"

# 下面这个跑到一多半会产生报错然后停下来
# 这是正常现象
# 根本原因在于 -Pcustom.jruby.path="$JRUBY_DIR" 这个参数没有被
# 正确的继续传递下去，只能被当前 gradle task 解析
# 不能被下一个 gradle task 获取到
# 用这个任务主要是增加必要的依赖
# 直接 assemble 是没法用的
./gradlew installDefaultGems -Pcustom.jruby.path="$JRUBY_DIR"
rm -rf ./vendor/jruby/
./gradlew assemble -Pcustom.jruby.path="$JRUBY_DIR"

bin/logstash-plugin install --development
bin/logstash-plugin install logstash-input-stdin
bin/logstash-plugin install logstash-output-stdout
bin/logstash-plugin install logstash-codec-json
bin/logstash-plugin install logstash-codec-json_lines

popd || exit
